#!/bin/bash

# 程序名
PROGRAM_NAME="quick-research-web.py"

# 获取脚本目录路径
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
PROGRAM_FULL_PATH="$SCRIPT_DIR/$PROGRAM_NAME"

# 定义日志文件
LOG_FILE="$SCRIPT_DIR/${PROGRAM_NAME}_output.log"

echo "当前脚本目录: $SCRIPT_DIR"
echo "程序完整路径: $PROGRAM_FULL_PATH"
echo "日志文件路径: $LOG_FILE"

# 切换到脚本所在的目录（可选）
echo "切换到脚本所在的目录..."
cd "$SCRIPT_DIR" || { echo "切换目录失败，退出脚本"; exit 1; }

# 查找并终止之前运行的同一程序
echo "查找并终止之前运行的同一程序..."
PIDS=$(ps aux | grep "$PROGRAM_NAME" | grep -v grep | awk '{print $2}')

if [ -n "$PIDS" ]; then
    echo "找到以下进程ID: $PIDS"
    if pkill -f "$PROGRAM_NAME"; then
        echo "之前运行的程序已终止" | tee -a "$LOG_FILE"
    else
        echo "终止程序失败" | tee -a "$LOG_FILE"
    fi
else
    echo "没有找到之前运行的程序" | tee -a "$LOG_FILE"
fi

# 检查文件是否存在
if [ -f "$PROGRAM_FULL_PATH" ]; then
    echo "程序文件存在，正在后台启动程序..." | tee -a "$LOG_FILE"
    # 使用 nohup 和 exec 确保所有输出都被重定向
    nohup python3 "$PROGRAM_FULL_PATH" >> "$LOG_FILE" 2>&1 &
    PID=$!
    if ps -p $PID > /dev/null; then
        echo "程序已在后台启动 (PID: $PID)" | tee -a "$LOG_FILE"
    else
        echo "程序启动失败" | tee -a "$LOG_FILE"
    fi
else
    echo "程序文件不存在，请检查路径" | tee -a "$LOG_FILE"
fi
